home *** CD-ROM | disk | FTP | other *** search
Text File | 1990-08-20 | 6.5 KB | 13 lines | [TEXT/CCL ] |
-
- (export (quote (glispprogram glisplanguage)) :glisp)
-
- (glisp::declarereservedwords (quote glisp) (quote (define define-modify-macro defmacro defpfun deftype defun language lisp plisp)))
-
- (defpfun glispprogram nil (let (glisp::!dest glisp::!variables glisp::!inrepeat) (glisp::beginplispfunction (quote glispprogram)) (let ((glisp::!inrepeat t) (glisp::!repeatcount 0) (max (glisp::repeatmax 1))) (loop (glisp::setdecisionpoint) (cond ((or (glisp::repeatstop? max) (and (catch !failure (glisp::lcall (quote glisplanguage) nil nil) (glisp::slvariable 2) nil) (glisp::restoredecisionpoint))) (glisp::deletedecisionpoint) (return))) (glisp::deletedecisionpoint)) (glisp::repeatset 1 0)) (glisp::lcall (quote eof) nil nil) (setq glisp::!dest (glisp::xnew)) (glisp::rbeginlist) (let ((glisp::!inrepeat t) (glisp::!repeatcount 0) (max (glisp::repeatmax 1))) (loop (glisp::setdecisionpoint) (cond ((or (glisp::repeatstop? max) (and (catch !failure (glisp::mrvariable 2) nil) (glisp::restoredecisionpoint))) (glisp::deletedecisionpoint) (return))) (glisp::deletedecisionpoint)) (glisp::repeatset 1 0)) (glisp::rendlist) (glisp::endplispfunction (quote glispprogram))) ((repeat 1 0 ((call glisplanguage) (variable 2))) (call eof) (rewritesto) (beginlist) (repeat 1 0 ((variable 2 t nil))) (endlist)))
-
- (defpfun glisplanguage nil (let (glisp::!dest glisp::!variables glisp::!inrepeat) (glisp::beginplispfunction (quote glisplanguage)) (or (nextis? (quote -)) (failure "'-'")) (case (peek) (plisp (next) (or (nextis? (quote -)) (failure "'-'")) (glisp::lcall (quote plispprogram) nil nil) (glisp::slvariable 1) (setq glisp::!dest (glisp::xnew)) (glisp::srvariable 1)) (lisp (next) (or (nextis? (quote -)) (failure "'-'")) (glisp::lcall (quote lispprogram) nil nil) (glisp::slvariable 1) (setq glisp::!dest (glisp::xnew)) (glisp::srvariable 1)) (define (next) (or (nextis? (quote language)) (failure "'language'")) (glisp::lcall (quote identifier) nil nil) (glisp::slvariable 1) (or (nextis? (quote -)) (failure "'-'")) (setq glisp::!dest (glisp::xnew)) (glisp::rcall (quote targetlanguage) (let ((glisp::!dest (glisp::xnew))) (glisp::srvariable 1) (cdr glisp::!dest)) nil) (setq glisp::!dest (glisp::xcons glisp::!dest (quote nil)))) (t (failure "'plisp' or 'lisp' or 'define'"))) (glisp::endplispfunction (quote glisplanguage))) ((literal -) (literals (plisp (literal -) (call plispprogram) (variable 1) (rewritesto) (variable 1)) (lisp (literal -) (call lispprogram) (variable 1) (rewritesto) (variable 1)) (define (literal language) (call identifier) (variable 1) (literal -) (rewritesto) (call targetlanguage ((variable 1))) (literal nil)))))
-
- (defpfun lispprogram nil (let (glisp::!dest glisp::!variables glisp::!inrepeat) (glisp::beginplispfunction (quote lispprogram)) (glisp::lcall (quote sourcelanguage) (let ((glisp::!dest (glisp::xnew))) (setq glisp::!dest (glisp::xcons glisp::!dest (quote lisp))) (cdr glisp::!dest)) nil) (let ((glisp::!inrepeat t) (glisp::!repeatcount 0) (max (glisp::repeatmax 1))) (loop (glisp::setdecisionpoint) (cond ((or (glisp::repeatstop? max) (and (catch !failure (glisp::lcall (quote lispexpression) nil nil) (glisp::slvariable 2) nil) (glisp::restoredecisionpoint))) (glisp::deletedecisionpoint) (return))) (glisp::deletedecisionpoint)) (glisp::repeatset 1 0)) (setq glisp::!dest (glisp::xnew)) (glisp::srvariable 2) (glisp::endplispfunction (quote lispprogram))) ((call sourcelanguage ((literal lisp))) (repeat 1 0 ((call lispexpression) (variable 2))) (rewritesto) (variable 2)))
-
- (defpfun lispexpression nil (let (glisp::!dest glisp::!variables glisp::!inrepeat) (glisp::beginplispfunction (quote lispexpression)) (glisp::setdecisionpoint) (and (catch !failure (glisp::lbeginlist) (let ((glisp::altvar (and (glisp::vbound? 1) (not glisp::!inrepeat) (glisp::veval 1 nil)))) (glisp::setdecisionpoint) (or (and (or (null glisp::altvar) (= glisp::altvar 1)) (not (and (catch !failure (or (nextis? (quote defun)) (failure "'defun'")) nil) (glisp::restoredecisionpoint))) (glisp::vset 1 1 nil)) (and (or (null glisp::altvar) (= glisp::altvar 2)) (not (and (catch !failure (or (nextis? (quote defmacro)) (failure "'defmacro'")) nil) (glisp::restoredecisionpoint))) (glisp::vset 1 2 nil)) (and (or (null glisp::altvar) (= glisp::altvar 3)) (not (and (catch !failure (or (nextis? (quote define-modify-macro)) (failure "'define-modify-macro'")) nil) (glisp::restoredecisionpoint))) (glisp::vset 1 3 nil)) (and (or (null glisp::altvar) (= glisp::altvar 4)) (not (and (catch !failure (or (nextis? (quote deftype)) (failure "'deftype'")) nil) (glisp::restoredecisionpoint))) (glisp::vset 1 4 nil)) (and (or (null glisp::altvar) (= glisp::altvar 5)) (not (and (catch !failure (or (nextis? (quote defpfun)) (failure "'defpfun'")) nil) (glisp::restoredecisionpoint))) (glisp::vset 1 5 nil)) (progn (glisp::deletedecisionpoint) (failure "'defun' or 'defmacro' or 'define-modify-macro' or 'deftype' or 'defpfun'" t))) (glisp::deletedecisionpoint)) (glisp::slvariable 2) (glisp::mlvariable 3 t t) (glisp::lendlist) (setq glisp::!dest (glisp::xnew)) (glisp::rcall (quote checkfunction) (let ((glisp::!dest (glisp::xnew))) (glisp::srvariable 2) (cdr glisp::!dest)) nil) (glisp::rbeginlist) (case (glisp::altcheck 1) (1 (setq glisp::!dest (glisp::xcons glisp::!dest (quote defun)))) (2 (setq glisp::!dest (glisp::xcons glisp::!dest (quote defmacro)))) (3 (setq glisp::!dest (glisp::xcons glisp::!dest (quote define-modify-macro)))) (4 (setq glisp::!dest (glisp::xcons glisp::!dest (quote deftype)))) (5 (setq glisp::!dest (glisp::xcons glisp::!dest (quote defpfun)))) (t (failure "'defun' or 'defmacro' or 'define-modify-macro' or 'deftype' or 'defpfun'"))) (glisp::srvariable 2) (glisp::mrvariable 3) (glisp::rendlist) nil) (glisp::restoredecisionpoint) (catch !failure (glisp::slvariable 1) (or (not (symbolp (glisp::veval 1))) (failure "'(not (symbolp (veval 1)))' to be true")) (setq glisp::!dest (glisp::xnew)) (glisp::srvariable 1) nil) (glisp::restoredecisionpoint) (glisp::deletedecisionpoint) (failure "'(' or :1" t)) (glisp::deletedecisionpoint) (glisp::endplispfunction (quote lispexpression))) ((branches ((beginlist) (alternatives 1 ((literal defun)) ((literal defmacro)) ((literal define-modify-macro)) ((literal deftype)) ((literal defpfun))) (variable 2) (variable 3 t ((endlist))) (rewritesto) (call checkfunction ((variable 2))) (beginlist) (alternatives 1 ((literal defun)) ((literal defmacro)) ((literal define-modify-macro)) ((literal deftype)) ((literal defpfun))) (variable 2) (variable 3 t ((endlist)))) ((variable 1) (lisp if (not (symbolp (glisp::veval 1)))) (rewritesto) (variable 1)))))
-